import { createI18n } from 'vue-i18n'
import { useLocaleStoreWithOut } from '@/store/modules/locale.js'
import en from './lang/en/index'
import zh from './lang/zh-CN'

export let i18n: ReturnType<typeof createI18n>

// 创建vue-i18n配置项
const createI18nOptions = () => {
  const localeStore = useLocaleStoreWithOut()
  // 当前语言
  const locale = localeStore.getCurrentLocale

  // 语言包
  const messages = {
    en: en,
    zhCN: zh
  }

  // 修改当前语言
  localeStore.setCurrentLocale({
    lang: locale.lang
    // elLocale: elLocal
  })

  return {
    // 当前语言
    locale: locale.lang,
    // 预设的语言环境
    fallbackLocale: locale.lang,
    // 本地化的语言环境信息
    messages: messages,
    // 是否将根级别语言环境与组件本地化语言环境同步。
    // sync: true,
    // 是否取消本地化失败时输出的警告。
    silentTranslationWarn: true,
    // 是否在回退到 fallbackLocale 或 root 时取消警告。
    silentFallbackWarn: true,
  }
}


export const setUpI18n = (app: any) => {
  const options = createI18nOptions()
  i18n = createI18n(options)
  app.use(i18n)
}
